package net.flintx.array;

import java.util.*;

public class KDiffPairsInAnArray {
    public int findPairs(int[] nums, int k) {
        if (nums == null || nums.length == 0 || k < 0)   return 0;
        int count = 0;
        HashMap<Integer, Integer> map = new HashMap<>();
        for (int num : nums) {
            map.put(num, map.getOrDefault(num, 0) + 1);
        }
        for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
            if (k == 0) {
                if (entry.getValue() >= 2)
                    count += 1;
            } else {
                if (map.containsKey(entry.getKey() + k)) {
                    count += 1;
                }
            }
        }
        return count;
    }
}

// 质量很糟糕的一道题。。用HashMap记录出现过的元素，然后遍历HashMap查找有没有同时存在key与key+k的pair，注意一下k为0的情况
